package liming.tool.obj;

import java.util.Collection;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

/**
 * 对象管理器
 * 允许通过类型、名称等条件查找对象
 */
public class ObjectManage {

    public static boolean addObject(String name, Collection<Class<?>> types, ObjInterface object){
        Set<Class<?>> ts = new HashSet<>(types);
        if(ts.isEmpty()){
            types.add(object.getDefaultClass());
            types.add(object.getClass());
        }
        for(Class<?> type : ts){
            if(!type.isInstance(object))
                throw new RuntimeException("对象类型错误: 不能将 "+object.getClass().getName()+"转换为 "+ type.getName());
        }

        return false;
    }

    public static Object findObject(String type, String name){
        return null;
    }
    public static Object findObject(String type){
        return findObject(type,null);
    }
}
